// 环境配置
interface EnvConfig {
  // 应用信息
  APP_TITLE: string
  APP_ENV: string
  
  // API配置
  API_BASE_URL: string
  API_TIMEOUT: number
  
  // 开发配置
  DEV_SERVER_PORT: number
  DEV_SERVER_HOST: string
  
  // 其他配置
  UPLOAD_MAX_SIZE: number
  ENABLE_MOCK: boolean
}

// 开发环境配置
const devConfig: EnvConfig = {
  APP_TITLE: '中山大学研究生院校企对接平台',
  APP_ENV: 'development',
  API_BASE_URL: '/api',
  API_TIMEOUT: 15000,
  DEV_SERVER_PORT: 3000,
  DEV_SERVER_HOST: 'localhost',
  UPLOAD_MAX_SIZE: 10 * 1024 * 1024, // 10MB
  ENABLE_MOCK: true
}

// 生产环境配置
const prodConfig: EnvConfig = {
  APP_TITLE: '中山大学研究生院校企对接平台',
  APP_ENV: 'production',
  API_BASE_URL: 'https://api.sysu.edu.cn',
  API_TIMEOUT: 30000,
  DEV_SERVER_PORT: 80,
  DEV_SERVER_HOST: 'api.sysu.edu.cn',
  UPLOAD_MAX_SIZE: 50 * 1024 * 1024, // 50MB
  ENABLE_MOCK: false
}

// 测试环境配置
const testConfig: EnvConfig = {
  APP_TITLE: '中山大学研究生院校企对接平台',
  APP_ENV: 'test',
  API_BASE_URL: 'https://test-api.sysu.edu.cn',
  API_TIMEOUT: 20000,
  DEV_SERVER_PORT: 8080,
  DEV_SERVER_HOST: 'test-api.sysu.edu.cn',
  UPLOAD_MAX_SIZE: 20 * 1024 * 1024, // 20MB
  ENABLE_MOCK: false
}

// 根据环境变量选择配置
const getEnvConfig = (): EnvConfig => {
  const env = import.meta.env.MODE || 'development'
  
  switch (env) {
    case 'production':
      return prodConfig
    case 'test':
      return testConfig
    case 'development':
    default:
      return devConfig
  }
}

// 导出当前环境配置
export const envConfig = getEnvConfig()

// 导出环境判断函数
export const isDev = () => envConfig.APP_ENV === 'development'
export const isProd = () => envConfig.APP_ENV === 'production'
export const isTest = () => envConfig.APP_ENV === 'test'

// 导出默认配置
export default envConfig
